SOQL (Salesforce Object Query Language) হলো Salesforce-এর একটি কুয়েরি ভাষা, যা Salesforce ডেটাবেজে থাকা বিভিন্ন অবজেক্ট থেকে রেকর্ড সংগ্রহ করতে ব্যবহৃত হয়। SOQL অনেকটা SQL-এর মতো কাজ করে, তবে এটি Salesforce এর অবজেক্ট এবং ডেটা কাঠামোর জন্য বিশেষভাবে ডিজাইন করা হয়েছে।
SOQL এর মৌলিক ধারণা
SOQL ব্যবহার করে Salesforce ডেটাবেজে থাকা অবজেক্ট যেমন Account, Contact, Opportunity ইত্যাদি থেকে ডেটা সহজেই পুনরুদ্ধার করা যায়। SOQL কুয়েরি মূলত SELECT স্টেটমেন্টের মাধ্যমে একটি নির্দিষ্ট অবজেক্টের ফিল্ড থেকে ডেটা নিয়ে আসে এবং WHERE, ORDER BY, এবং LIMIT এর মতো ক্লজ ব্যবহার করে ডেটা ফিল্টার এবং সাজানো যায়।
SOQL সাধারণত Apex ক্লাস, ট্রিগার, এবং Visualforce পেজের মধ্যে ব্যবহৃত হয়, যেখানে ডেটা অনুসন্ধান এবং পুনরুদ্ধারের প্রয়োজন হয়।
SOQL এর প্রধান বৈশিষ্ট্যসমূহ
SELECT স্টেটমেন্ট: SOQL-এ SELECT স্টেটমেন্ট ব্যবহার করে নির্দিষ্ট অবজেক্টের ফিল্ড থেকে ডেটা আনা হয়।
WHERE ক্লজ: WHERE ক্লজ ব্যবহার করে নির্দিষ্ট শর্তের ভিত্তিতে ডেটা ফিল্টার করা যায়।
ORDER BY: ORDER BY ক্লজ ব্যবহার করে রেকর্ডগুলোকে বর্ধমান বা হ্রাসমান ক্রমে সাজানো যায়।
LIMIT: LIMIT ক্লজ ব্যবহার করে কুয়েরিতে নির্দিষ্ট সংখ্যক রেকর্ড ফেরত আনা যায়।
Relationship Query: SOQL এর মাধ্যমে Parent-Child এবং Child-Parent সম্পর্কিত অবজেক্টের মধ্যে কুয়েরি চালানো সম্ভব।
Aggregate Functions: SOQL Aggregate ফাংশন (যেমন: COUNT, AVG, MIN, MAX, SUM) সাপোর্ট করে, যা রিপোর্টিং এবং ডেটা অ্যানালাইসিসে সহায়ক।
SOQL এর সাধারণ সিনট্যাক্স
SELECT field1, field2 FROM ObjectName WHERE condition ORDER BY field LIMIT number
- field1, field2: যে ফিল্ডগুলো থেকে ডেটা নিতে হবে।
- ObjectName: যে অবজেক্ট থেকে ডেটা সংগ্রহ করা হবে।
- condition: নির্দিষ্ট শর্ত বা ক্রাইটেরিয়া।
- ORDER BY field: ফিল্ডের উপর ভিত্তি করে সাজানো।
- LIMIT number: কতগুলো রেকর্ড রিটার্ন করবে তা নির্ধারণ করে।
SOQL এর কিছু উদাহরণ
উদাহরণ ১: সহজ SOQL কুয়েরি
নিচের কুয়েরিতে Account অবজেক্টের Id এবং Name ফিল্ড থেকে ডেটা আনা হয়েছে।
List<Account> accounts = [SELECT Id, Name FROM Account];
- এখানে
Accountঅবজেক্টের সব রেকর্ডের Id এবং Name সংগ্রহ করা হয়েছে।
উদাহরণ ২: WHERE ক্লজ ব্যবহার
নিচের কুয়েরিতে Industry ফিল্ডের মান 'Technology' এমন সব Account রেকর্ড পুনরুদ্ধার করা হয়েছে।
List<Account> techAccounts = [SELECT Id, Name FROM Account WHERE Industry = 'Technology'];
- এখানে কেবলমাত্র Industry = 'Technology' এমন Account রেকর্ডগুলো সংগ্রহ করা হয়েছে।
উদাহরণ ৩: ORDER BY এবং LIMIT ব্যবহার
নিচের কুয়েরিতে Account অবজেক্টের Name অনুযায়ী সাজানো হয়েছে এবং শুধুমাত্র প্রথম পাঁচটি রেকর্ড রিটার্ন করা হয়েছে।
List<Account> sortedAccounts = [SELECT Id, Name FROM Account ORDER BY Name LIMIT 5];
- এখানে Name ফিল্ড অনুযায়ী রেকর্ডগুলোকে সাজানো হয়েছে এবং প্রথম পাঁচটি রেকর্ড সংগ্রহ করা হয়েছে।
উদাহরণ ৪: Parent-Child Relationship Query
Parent-Child সম্পর্কিত কুয়েরিতে, এক Parent অবজেক্ট থেকে তার Child অবজেক্টের রেকর্ডগুলো সংগ্রহ করা যায়। নিচে Account এবং Contact এর Parent-Child কুয়েরি উদাহরণ দেয়া হলো।
List<Account> accountsWithContacts = [SELECT Id, Name, (SELECT Id, FirstName, LastName FROM Contacts) FROM Account];
- এখানে প্রতিটি Account রেকর্ডের সাথে সংশ্লিষ্ট Contact রেকর্ডগুলো আনা হয়েছে।
উদাহরণ ৫: Aggregate Functions ব্যবহার
Aggregate ফাংশন ব্যবহার করে SOQL কুয়েরি দ্বারা গাণিতিক অপারেশন সম্পন্ন করা যায়, যেমন COUNT।
Integer totalAccounts = [SELECT COUNT() FROM Account WHERE Industry = 'Technology'];
- এখানে
Industryফিল্ডে 'Technology' থাকা Account রেকর্ডের সংখ্যা গণনা করা হয়েছে।
SOQL এর ব্যবহার ক্ষেত্রে
SOQL বিভিন্ন ক্ষেত্রে ব্যবহার করা হয়, যেমন:
ডেটা অনুসন্ধান এবং প্রদর্শন: Apex ক্লাস বা ট্রিগার থেকে ডেটা সংগ্রহ করে প্রয়োজনীয় ডেটা প্রদর্শনে SOQL কুয়েরি করা যায়।
রিপোর্টিং এবং ডেটা অ্যানালাইসিস: SOQL এর মাধ্যমে Aggregate ফাংশন ব্যবহার করে রিপোর্ট এবং ডেটা অ্যানালাইসিসে সহায়তা করা যায়।
Parent-Child সম্পর্কিত ডেটা পুনরুদ্ধার: SOQL Parent-Child সম্পর্কিত কুয়েরি সাপোর্ট করে, যা সম্পর্কিত ডেটা সংগ্রহে সহায়ক।
SOQL এর সুবিধা:
সহজ এবং দ্রুত অনুসন্ধান: SOQL সহজেই Salesforce ডেটাবেজে কুয়েরি চালাতে পারে, যা প্রয়োজনীয় ডেটা দ্রুত ফিরে পেতে সাহায্য করে।
Relationship Querying: Parent-Child এবং Child-Parent সম্পর্কিত ডেটা সংগ্রহ করা সম্ভব, যা ডেটার সম্বন্ধ বুঝতে সহায়ক।
রিপোর্টিং এবং অ্যানালাইসিসে সহায়ক: SOQL-এ Aggregate ফাংশন ব্যবহার করে বিভিন্ন ধরণের রিপোর্ট তৈরি এবং ডেটা বিশ্লেষণ করা যায়।
SOQL এবং SOSL এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | SOQL | SOSL |
|---|---|---|
| ব্যবহার | নির্দিষ্ট অবজেক্টের রেকর্ড পুনরুদ্ধারে | একাধিক অবজেক্টে কী-ওয়ার্ড সার্চে |
| কুয়েরি ভাষা | SELECT ব্যবহার করে | FIND ব্যবহার করে |
| Aggregate Functions | সমর্থিত | সমর্থিত নয় |
| Relationship Queries | সমর্থিত | সমর্থিত নয় |
সারসংক্ষেপ:
SOQL হলো একটি কুয়েরি ভাষা, যা Salesforce প্ল্যাটফর্মে ডেটা সংগ্রহ, ফিল্টারিং, এবং সম্পর্কিত অবজেক্টের ডেটা সংগ্রহে সহায়ক। এটি সহজেই Parent-Child সম্পর্কিত কুয়েরি এবং Aggregate ফাংশন সাপোর্ট করে, যা ডেটা বিশ্লেষণ এবং রিপোর্টিংয়ের জন্য কার্যকর। Salesforce ডেটাবেজে ডেটা অনুসন্ধান ও প্রক্রিয়াকরণে SOQL একটি অত্যন্ত গুরুত্বপূর্ণ টুল।
Read more